<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>JavaScript变量 演示文档</title>
    <link rel="stylesheet" href="./css/common.css" />
    <script>
      // int age = 28;   Java
      var age; //我们不确定age属于哪种数据类型
      console.log(typeof age); //undefined 未确定类型
      age = 32; //age 属于数字型
      console.log(typeof age);
      // js的变量数据类型只有程序在运行过程中,根据等号右边的值来确定
      var name = "Jeff"; //  name变量属于 字符串型
      console.log(typeof name);

      //布尔
      var flag = false;
      console.log(typeof flag); //boolean

      //数组(复杂数据类型)
      var room = new Array(3);
      room[0] = "张三";
      room[1] = "李四";
      room[2] = "王五";
      console.log(room[2]);
      console.log(room[3]);
      console.log(typeof room);
      console.log("=======================><======================");

      var x = 6;
      console.log(typeof x); //number
      x = "Jeff";
      console.log(typeof x); // string
      // console.log(sex); //sex is not defined
      console.log("=======================><======================");
      /*
       * Null（空值）类型的值只有一个，就是null
       *     null这个值专门用来表示一个为空的对象
       *     使用typeof检查一个null值时，会返回object
       *
       * Undefined（未定义）类型的值只有一个，就undefind
       *     当声明一个变量，但是并不给变量赋值时，它的值就是undefined
       *     使用typeof检查一个undefined时也会返回undefined
       */
      var a = null;
      console.log(typeof a);
      var b = undefined;
      console.log(typeof b);
      console.log("=======================><======================");

      //数字型
      // 进制简单了解
      console.log(20);
      console.log(020);
      console.log(0x10);

      console.log(Number.MAX_VALUE); //最大值
      console.log(Number.MIN_VALUE); //最小值
      console.log(Number.MAX_VALUE * 2); //无穷大
      console.log(-Number.MAX_VALUE * 2); //无穷小
      console.log("Jeff" * 3); //NaN
      console.log(isNaN(20)); //false
      console.log("=======================><======================");
      //String 字符串型
      console.log("外双内'单引号'嵌套使用");
      console.log('外单内"双引号"嵌套使用');
      console.log('外单内"双引号"嵌套使用'.length);
      console.log("abcde".length);
      console.log("a'bc'de".length);
    </script>
  </head>
  <body onload="alert('页面加载完成后,请使用开发者工具查看控制台!')">
    <table>
      <tr>
        <td><a href="https://www.runoob.com/html/html5-intro.html">菜鸟教程</a></td>
      </tr>
    </table>
  </body>
</html>
